import {
	PLATFORM
} from '@/store/mutation-types'
import {
	clearKy
} from '@/store/clearstorage.js'
import storage from '@/utils/storage'
import * as userApi from '@/api/user.js'
const app = {
	state: {
		// 当前终端平台
		platform: '',
		//平台规则
		dicts: {
			policy: {}
		}
	},

	mutations: {
		SET_PLATFORM: (state, value) => {
			state.platform = value
		},
		clearStorage: (state, value) => {
			clearKy.forEach(item => {
				uni.removeStorageSync(item)
			})
		},
		// clearStorage: (state, value) => {
		// 	clearKy.forEach(item => {
		// 		uni.removeStorageSync(item)
		// 	})
		// }
	},

	actions: {
		DictData({
			commit
		}, payData) {
			systemApi.dict_dataList(dictType).then(res => {
				let objs = {}
				res.rows.forEach((item) => {
					objs[item.dictValue] = item.dictLabel
				})
				this.dicts[dictType] = objs

			})
		},
		wxmpPay({
			commit
		}, payData) {
			return new Promise((resolve, reject) => {
				uni.requestPayment({
					provider: 'wxpay',
					appId: payData.appId,
					timeStamp: payData
						.timeStamp, // 支付签名时间戳，注意微信 jssdk 中的所有使用 timestamp 字段均为小写。但最新版的支付后台生成签名使用的 timeStamp 字段名需大写其中的 S 字符
					nonceStr: payData.nonceStr, // 支付签名随机串，不长于 32 位
					package: payData.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
					signType: payData.signType, // 微信支付V3的传入 RSA ,微信支付V2的传入格式与V2统一下单的签名格式保持一致
					paySign: payData.paySign, // 支付签名
					success(res) {
						// alert(JSON.stringify(res))
						resolve(res)
					},
					fail(err) {
						// alert(JSON.stringify(err))
						// if(err.errMsg==='requestPayment:fail cancel'){

						// }
						// uni.showToast({
						// 	title: '支付出错',
						// 	icon: 'none',
						// 	mask: true
						// })
						reject(err)
					}
				})
			})
		},
		wxH5Pay({
			commit
		}, payData) {
			return new Promise((resolve, reject) => {
				userApi.userConfig().then(({
					data
				}) => {
					wx.config({
						debug: false, // 开启调试模式,调用的所有 api 的返回值会在客户端 alert 出来，若要查看传入的参数，可以在 pc 端打开，参数信息会通过 log 打出，仅在 pc 端时才会打印。
						appId: data.appid, // 必填，公众号的唯一标识
						timestamp: data.timestamp, // 必填，生成签名的时间戳
						nonceStr: data.noncestr, // 必填，生成签名的随机串
						signature: data.signature, // 必填，签名
						jsApiList: ['chooseWXPay'] // 必填，需要使用的 JS 接口列表
					})
					wx.ready(() => {
						wx.chooseWXPay({
							appId: payData.appId,
							timestamp: payData
								.timeStamp, // 支付签名时间戳，注意微信 jssdk 中的所有使用 timestamp 字段均为小写。但最新版的支付后台生成签名使用的 timeStamp 字段名需大写其中的 S 字符
							nonceStr: payData.nonceStr, // 支付签名随机串，不长于 32 位
							package: payData
								.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
							signType: payData
								.signType, // 微信支付V3的传入 RSA ,微信支付V2的传入格式与V2统一下单的签名格式保持一致
							paySign: payData.paySign, // 支付签名
							success(res) {
								// alert(JSON.stringify(res))
								resolve(res)
							},
							fail(err) {
								// alert(JSON.stringify(err))
								// uni.showToast({
								// 	title: '支付出错',
								// 	icon: 'none',
								// 	mask: true
								// })
								reject(err)
							}
						})
					})
				})
			})
		},
	}
}

export default app